package com.wgy.day29多线程.创建线程类.使用匿名内部类;

/*
匿名内部类方式实现多线程的创建:
匿名:没有名字
内部类:写在类的内部的类

匿名内部类的作用:简化代码
       把子类继承父类,重写父类的方法,创建子类对象合成一步完成
       把实现类实现接口,重写接口的方法,创建实现类对象和成一步完成
匿名内部类的最终产物:子类/实现类 的对象,而这个类没有名字

格式: new 父类/接口 (){
     覆盖重写父类或者接口的方法
     }

*/
public class Demo03InnerClassThread {
    public static void main(String[] args) {
        //线程的父类是Thread
        //  new MyThread().start();
        new Thread() {
            //重写run方法,设置线程任务
            @Override
            public void run() {
                for (int i = 0; i < 20; i++) {
                    System.out.println(Thread.currentThread().getName() + "-->" + "黑马");
                }
            }
        }.start();


        //线程的接口是Runnable
        //Runnable r=new RunnableImpl();  多态
        //new Thread(r).start();
        Runnable r = new Runnable() {
            //重写run方法,设置线程任务
            @Override
            public void run() {
                for (int i = 0; i < 20; i++) {
                    System.out.println(Thread.currentThread().getName() + "-->" + "白马");
                }
            }
        };
        new Thread(r).start();


        //简化版
        new Thread(new Runnable() {
            //重写run方法,设置线程任务
            @Override
            public void run() {
                for (int i = 0; i < 20; i++) {
                    System.out.println(Thread.currentThread().getName() + "-->" + "红马");
                }
            }
        }).start();


    }
}
